package com.xydtech.ecard.merchant.service.impl;

import com.xydtech.common.annotation.DataScope;
import com.xydtech.common.core.domain.entity.SysDept;
import com.xydtech.ecard.merchant.domain.EcardBranchMerchant;
import com.xydtech.ecard.merchant.domain.EcardYSQBranchMerchant;
import com.xydtech.ecard.merchant.mapper.EcardBranchMerchantMapper;
import com.xydtech.ecard.merchant.service.IEcardBranchMerchantService;
import com.xydtech.system.service.ISysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/*
 * 网点建档商户信息统计Service
 *@author lin
 *@version 1.0
 *@create 2023/8/3 9:00
 */
@Service
public class EcardBranchMerchantServiceImpl implements IEcardBranchMerchantService {

    @Autowired
    private EcardBranchMerchantMapper ecardBranchMerchantMapper;
    @Autowired
    private ISysDeptService sysDeptService;

    /**
     * 网点建档商户信息统计
     * @param ecardBranchMerchant
     * @return
     */
    @Override
    @DataScope(deptAlias = "aa")
    public List<EcardBranchMerchant> selectBranchMerchantInfo(EcardBranchMerchant ecardBranchMerchant) {
        return ecardBranchMerchantMapper.selectBranchMerchantInfo(ecardBranchMerchant);
    }

    /**
     * 网点建档企业信息统计
     * @param ecardBranchMerchant
     * @return
     */
    @Override
    @DataScope(deptAlias = "aa")
    public List<EcardBranchMerchant> selectBranchEnterpriseInfo(EcardBranchMerchant ecardBranchMerchant) {
        return ecardBranchMerchantMapper.selectBranchEnterpriseInfo(ecardBranchMerchant);
    }

    /**
     * 网点建档新型农业主体信息统计
     * @param ecardBranchMerchant
     * @return
     */
    @Override
    @DataScope(deptAlias = "aa")
    public List<EcardBranchMerchant> selectBranchAgricultureInfo(EcardBranchMerchant ecardBranchMerchant) {
        return ecardBranchMerchantMapper.selectBranchAgricultureInfo(ecardBranchMerchant);
    }

    /**
     * 网点建档个人信息统计
     * @param ecardBranchMerchant
     * @return
     */
    @Override
    @DataScope(deptAlias = "aa")
    public List<EcardBranchMerchant> selectBranchPersonInfo(EcardBranchMerchant ecardBranchMerchant) {
        return ecardBranchMerchantMapper.selectBranchPersonInfo(ecardBranchMerchant);
    }

    /**
     * 电子地图网点建档信息统计
     * @param ecardBranchMerchant
     * @return
     */
    @Override
    public List<EcardYSQBranchMerchant> selectYSQBranchInfo(EcardBranchMerchant ecardBranchMerchant, String salt) {
        List<EcardBranchMerchant> ecardBranchPersons = ecardBranchMerchantMapper.selectBranchPersonInfo(ecardBranchMerchant);//个人
        List<EcardBranchMerchant> ecardBranchMerchants = ecardBranchMerchantMapper.selectBranchMerchantInfo(ecardBranchMerchant);//商户
        List<EcardBranchMerchant> ecardBranchEnterprises = ecardBranchMerchantMapper.selectBranchEnterpriseInfo(ecardBranchMerchant);//企业
        List<EcardBranchMerchant> ecardBranchAgricultures = ecardBranchMerchantMapper.selectBranchAgricultureInfo(ecardBranchMerchant);//新型农业主体
        List<EcardYSQBranchMerchant> ecardYSQBranchMerchants = new ArrayList<>();
        if (ecardBranchPersons.size() > 0){
            EcardBranchMerchant branchPerson = ecardBranchPersons.get(0);
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("1");//个人
            ysqBranchMerchant.setDeptId(branchPerson.getDeptId());//机构编号
            ysqBranchMerchant.setDeptName(branchPerson.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(branchPerson.getMerchantNum());//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(branchPerson.getMerchantNumUnuse());//已停用数量
            ysqBranchMerchant.setVisitSum(branchPerson.getVisitSum());//拜访次数
            ysqBranchMerchant.setDoTaskSum(branchPerson.getDoTaskSum());//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(branchPerson.getUndoTaskSum());//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        } else {
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("1");//个人
            ysqBranchMerchant.setDeptId(ecardBranchMerchant.getDeptId());//机构编号
            SysDept sysDept = sysDeptService.selectDeptById(ecardBranchMerchant.getDeptId(), salt);
            ysqBranchMerchant.setDeptName(sysDept.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(0);//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(0);//已停用数量
            ysqBranchMerchant.setVisitSum(0);//拜访次数
            ysqBranchMerchant.setDoTaskSum(0);//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(0);//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        }
        if (ecardBranchMerchants.size() > 0){
            EcardBranchMerchant branchMerchant = ecardBranchMerchants.get(0);
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("2");//商户
            ysqBranchMerchant.setDeptId(branchMerchant.getDeptId());//机构编号
            ysqBranchMerchant.setDeptName(branchMerchant.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(branchMerchant.getMerchantNum());//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(branchMerchant.getMerchantNumUnuse());//已停用数量
            ysqBranchMerchant.setVisitSum(branchMerchant.getVisitSum());//拜访次数
            ysqBranchMerchant.setDoTaskSum(branchMerchant.getDoTaskSum());//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(branchMerchant.getUndoTaskSum());//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        } else {
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("2");//商户
            ysqBranchMerchant.setDeptId(ecardBranchMerchant.getDeptId());//机构编号
            SysDept sysDept = sysDeptService.selectDeptById(ecardBranchMerchant.getDeptId(), salt);
            ysqBranchMerchant.setDeptName(sysDept.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(0);//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(0);//已停用数量
            ysqBranchMerchant.setVisitSum(0);//拜访次数
            ysqBranchMerchant.setDoTaskSum(0);//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(0);//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        }
        if (ecardBranchEnterprises.size() > 0){
            EcardBranchMerchant branchEnterprise = ecardBranchEnterprises.get(0);
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("3");//企业
            ysqBranchMerchant.setDeptId(branchEnterprise.getDeptId());//机构编号
            ysqBranchMerchant.setDeptName(branchEnterprise.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(branchEnterprise.getMerchantNum());//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(branchEnterprise.getMerchantNumUnuse());//已停用数量
            ysqBranchMerchant.setVisitSum(branchEnterprise.getVisitSum());//拜访次数
            ysqBranchMerchant.setDoTaskSum(branchEnterprise.getDoTaskSum());//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(branchEnterprise.getUndoTaskSum());//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        } else {
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("3");//企业
            ysqBranchMerchant.setDeptId(ecardBranchMerchant.getDeptId());//机构编号
            SysDept sysDept = sysDeptService.selectDeptById(ecardBranchMerchant.getDeptId(), salt);
            ysqBranchMerchant.setDeptName(sysDept.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(0);//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(0);//已停用数量
            ysqBranchMerchant.setVisitSum(0);//拜访次数
            ysqBranchMerchant.setDoTaskSum(0);//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(0);//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        }
        if (ecardBranchAgricultures.size() > 0){
            EcardBranchMerchant branchAgriculture = ecardBranchAgricultures.get(0);
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("4");//新型农业主体
            ysqBranchMerchant.setDeptId(branchAgriculture.getDeptId());//机构编号
            ysqBranchMerchant.setDeptName(branchAgriculture.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(branchAgriculture.getMerchantNum());//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(branchAgriculture.getMerchantNumUnuse());//已停用数量
            ysqBranchMerchant.setVisitSum(branchAgriculture.getVisitSum());//拜访次数
            ysqBranchMerchant.setDoTaskSum(branchAgriculture.getDoTaskSum());//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(branchAgriculture.getUndoTaskSum());//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        } else {
            EcardYSQBranchMerchant ysqBranchMerchant = new EcardYSQBranchMerchant();
            ysqBranchMerchant.setMerchantType("4");//新型农业主体
            ysqBranchMerchant.setDeptId(ecardBranchMerchant.getDeptId());//机构编号
            SysDept sysDept = sysDeptService.selectDeptById(ecardBranchMerchant.getDeptId(), salt);
            ysqBranchMerchant.setDeptName(sysDept.getDeptName());//网点名称
            ysqBranchMerchant.setMerchantNum(0);//建档数量
            ysqBranchMerchant.setMerchantNumUnuse(0);//已停用数量
            ysqBranchMerchant.setVisitSum(0);//拜访次数
            ysqBranchMerchant.setDoTaskSum(0);//超时拜访次数
            ysqBranchMerchant.setUndoTaskSum(0);//超时未拜访次数
            ecardYSQBranchMerchants.add(ysqBranchMerchant);
        }
        return ecardYSQBranchMerchants;
    }
}
